{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "b01e3f8f",
   "metadata": {},
   "source": [
    "# “Hello, world!”"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f83f9e3c",
   "metadata": {},
   "source": [
    "Import Sionna:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "6e7121a9",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-10T21:58:43.191028Z",
     "iopub.status.busy": "2025-03-10T21:58:43.190216Z",
     "iopub.status.idle": "2025-03-10T21:58:45.475328Z",
     "shell.execute_reply": "2025-03-10T21:58:45.474507Z"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import os\n",
    "if os.getenv(\"CUDA_VISIBLE_DEVICES\") is None:\n",
    "    gpu_num = 0 # Use \"\" to use the CPU\n",
    "    os.environ[\"CUDA_VISIBLE_DEVICES\"] = f\"{gpu_num}\"\n",
    "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'\n",
    "\n",
    "# Import Sionna\n",
    "try:\n",
    "    import sionna.phy\n",
    "except ImportError as e:\n",
    "    import sys\n",
    "    if 'google.colab' in sys.modules:\n",
    "       # Install Sionna in Google Colab\n",
    "       print(\"Installing Sionna and restarting the runtime. Please run the cell again.\")\n",
    "       os.system(\"pip install sionna\")\n",
    "       os.kill(os.getpid(), 5)\n",
    "    else:\n",
    "       raise e\n",
    "\n",
    "# IPython \"magic function\" for inline plots\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f7c64ad8",
   "metadata": {},
   "source": [
    "Let us first create a [BinarySource](https://nvlabs.github.io/sionna/phy/api/mapping.html#sionna.phy.mapping.BinarySource) to generate a random batch of bit vectors that we can map to constellation symbols:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "29709884",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-10T21:58:45.479526Z",
     "iopub.status.busy": "2025-03-10T21:58:45.479072Z",
     "iopub.status.idle": "2025-03-10T21:58:46.222200Z",
     "shell.execute_reply": "2025-03-10T21:58:46.221555Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<tf.Tensor: shape=(1000, 4), dtype=float32, numpy=\n",
       "array([[0., 0., 0., 0.],\n",
       "       [1., 1., 1., 1.],\n",
       "       [0., 1., 1., 1.],\n",
       "       ...,\n",
       "       [1., 1., 1., 1.],\n",
       "       [1., 1., 1., 0.],\n",
       "       [0., 1., 1., 0.]], dtype=float32)>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "batch_size = 1000 # Number of symbols we want to generate\n",
    "num_bits_per_symbol = 4 # 16-QAM has four bits per symbol\n",
    "binary_source = sionna.phy.mapping.BinarySource()\n",
    "b = binary_source([batch_size, num_bits_per_symbol])\n",
    "b"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3b2026eb",
   "metadata": {},
   "source": [
    "Next, let us create a [Constellation](https://nvlabs.github.io/sionna/phy/api/mapping.html#sionna.phy/mapping.Constellation) and visualize it:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "6aea6ae4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-10T21:58:46.227017Z",
     "iopub.status.busy": "2025-03-10T21:58:46.226820Z",
     "iopub.status.idle": "2025-03-10T21:58:46.417012Z",
     "shell.execute_reply": "2025-03-10T21:58:46.416357Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm0AAAJwCAYAAADbQ1b7AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWjZJREFUeJzt3Xl4VOX9/vF7AlnYJiEsGYIsQZBFEAQaDLWCPwNBEMUFAVFCZFEKIsSKKyJuWLACKkppBWzrglihVRGILFIlAgaibFKBYFpgghiSsGaG5Pn9wZepQxLIxEwmJ3m/rivX5ZzznJnPeT45w+2ZOSc2Y4wRAAAAKrWgQBcAAACASyO0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AcBF9O7dW7179/Y8PnDggGw2mxYvXlyur9OyZUuNHDmyXJ+zPK1fv142m03r168PdClAtUVoA/CL7Nu3T/fdd59atWqlsLAw2e12/frXv9bcuXN1+vTpgNa2YsUKPf300wGt4ec2btyop59+Wjk5OYEuxWPx4sWy2Wyen7CwMF1xxRWaMGGCsrKyyuU1KlsfAKuqGegCAFjXJ598osGDBys0NFQjRoxQx44d5XK59MUXX+jhhx/Wzp07tWDBgoDVt2LFCs2bN6/SBIaNGzdq+vTpGjlypCIiIrzW7dmzR0FBgfv/6GeeeUYxMTE6c+aMvvjiC73xxhtasWKFduzYodq1a/+i565sfQCsitAGoEwyMjI0dOhQtWjRQmvXrlWTJk0868aPH6+9e/fqk08+CWCF1hIaGhrQ17/xxhvVvXt3SdLo0aPVoEEDvfzyy/rHP/6hYcOGBbQ2AOfw8SiAMpk5c6ZOnDihN9980yuwnde6dWs9+OCDnsdnz57Vs88+q8svv1yhoaFq2bKlHn/8ceXn53tt17JlS91000364osvFBsbq7CwMLVq1Up/+ctfvMa53W5Nnz5dbdq0UVhYmBo0aKBrr71WKSkpkqSRI0dq3rx5kuT18d95hYWFmjNnjq688kqFhYUpKipK9913n44dO+bzXHz77bcaOXKk5yNih8Ohe++9Vz/99JNnzNNPP62HH35YkhQTE+Op58CBA579vvA7bfv379fgwYMVGRmp2rVr65prrikShM9/1+z999/X888/r8suu0xhYWG64YYbtHfvXp/35bz/9//+n6Rz4fxili5dqm7duqlWrVpq2LCh7r77bh08eNCz/lJ9AFB6nGkDUCYfffSRWrVqpZ49e5Zq/OjRo/XWW2/pjjvu0EMPPaRNmzZpxowZ2r17t5YtW+Y1du/evbrjjjs0atQoJSYmauHChRo5cqS6deumK6+8UtK5EDRjxgyNHj1asbGxysvL09dff62tW7eqT58+uu+++3To0CGlpKTor3/9a5F67rvvPi1evFhJSUmaOHGiMjIy9Nprr2nbtm368ssvFRwcXOq5SElJ0f79+5WUlCSHw+H5WHjnzp366quvZLPZdNttt+nf//633n33Xc2ePVsNGzaUJDVq1KjY58zKylLPnj116tQpTZw4UQ0aNNBbb72lm2++WR988IFuvfVWr/EvvviigoKC9Lvf/U65ubmaOXOmhg8frk2bNpV6P35u3759kqQGDRqUOOb8/P3qV7/SjBkzlJWVpblz5+rLL7/Utm3bFBERcck+APCBAQAf5ebmGknmlltuKdX49PR0I8mMHj3aa/nvfvc7I8msXbvWs6xFixZGktmwYYNn2ZEjR0xoaKh56KGHPMs6d+5sBgwYcNHXHT9+vCnube5f//qXkWTefvttr+UrV64ssrxXr16mV69enscZGRlGklm0aJFn2alTp4q8xrvvvltkP2bNmmUkmYyMjCLjW7RoYRITEz2PJ02aZCSZf/3rX55lx48fNzExMaZly5amoKDAGGPMunXrjCTTvn17k5+f7xk7d+5cI8ls37696MT8zKJFi4wk89lnn5kff/zR/Oc//zHvvfeeadCggalVq5b573//6/U669atM8YY43K5TOPGjU3Hjh3N6dOnPc/38ccfG0nmqaee8iwrqQ8AfMPHowB8lpeXJ0mqV69eqcavWLFCkpScnOy1/KGHHpKkIh/5dejQQb/5zW88jxs1aqS2bdtq//79nmURERHauXOnvv/+e5/rX7p0qcLDw9WnTx8dPXrU89OtWzfVrVtX69at8+n5atWq5fnvM2fO6OjRo7rmmmskSVu3bvW5PuncnMXGxuraa6/1LKtbt67Gjh2rAwcOaNeuXV7jk5KSFBIS4nl8fv5+PmcXEx8fr0aNGqlZs2YaOnSo6tatq2XLlqlp06bFjv/666915MgR/fa3v1VYWJhn+YABA9SuXTu+zwj4AR+PAvCZ3W6XJB0/frxU43/44QcFBQWpdevWXssdDociIiL0ww8/eC1v3rx5keeoX7++1/fNnnnmGd1yyy264oor1LFjR/Xr10/33HOPrrrqqkvW8/333ys3N1eNGzcudv2RI0dKs1se2dnZmj59ut57770i2+bm5vr0XOf98MMP6tGjR5Hl7du396zv2LGjZ/mFc1a/fn1JKvV39ObNm6crrrhCNWvWVFRUlNq2bXvRq1nP96xt27ZF1rVr105ffPFFqV4XQOkR2gD4zG63Kzo6Wjt27PBpu9J+Ab1GjRrFLjfGeP77uuuu0759+/SPf/xDq1ev1p///GfNnj1b8+fP1+jRoy/6/IWFhWrcuLHefvvtYteX9D2zktx5553auHGjHn74YXXp0kV169ZVYWGh+vXrp8LCQp+eq6xKM2cXExsb67l6FEDlRGgDUCY33XSTFixYoNTUVMXFxV10bIsWLVRYWKjvv//ec6ZIOvdl+5ycHLVo0aJMNURGRiopKUlJSUk6ceKErrvuOj399NOe0FZSSLz88sv12Wef6de//rXXR5tlcezYMa1Zs0bTp0/XU0895Vle3Me2vlw12aJFC+3Zs6fI8u+++86zPpDOv/6ePXs8V5qet2fPHq/6uFoUKB98pw1AmUyZMkV16tTR6NGji71z/r59+zR37lxJUv/+/SVJc+bM8Rrz8ssvSzr3PShf/fx2GtK573u1bt3a6xYiderUkaQif4HgzjvvVEFBgZ599tkiz3v27Fmf/mLB+TNcF57RunBfL1ZPcfr376/NmzcrNTXVs+zkyZNasGCBWrZsqQ4dOpS6Rn/o3r27GjdurPnz53vN+aeffqrdu3d79dSX/QZQMs60ASiTyy+/XO+8846GDBmi9u3be/1FhI0bN2rp0qWe+4517txZiYmJWrBggXJyctSrVy9t3rxZb731lgYNGqTrr7/e59fv0KGDevfurW7duikyMlJff/21PvjgA02YMMEzplu3bpKkiRMnKiEhQTVq1NDQoUPVq1cv3XfffZoxY4bS09PVt29fBQcH6/vvv9fSpUs1d+5c3XHHHaWqw26367rrrtPMmTPldrvVtGlTrV69utj7m52v54knntDQoUMVHBysgQMHekLNzz366KN69913deONN2rixImKjIzUW2+9pYyMDP39738P6F9PkKTg4GD9/ve/V1JSknr16qVhw4Z5bvnRsmVLTZ482TO2pD4A8FGAr14FYHH//ve/zZgxY0zLli1NSEiIqVevnvn1r39tXn31VXPmzBnPOLfbbaZPn25iYmJMcHCwadasmXnssce8xhhz7tYXxd3K48Jbbzz33HMmNjbWREREmFq1apl27dqZ559/3rhcLs+Ys2fPmgceeMA0atTI2Gy2IredWLBggenWrZupVauWqVevnunUqZOZMmWKOXToUImvW9wtP/773/+aW2+91URERJjw8HAzePBgc+jQISPJTJs2zes1n332WdO0aVMTFBTkdfuPC2/5YYwx+/btM3fccYeJiIgwYWFhJjY21nz88cdeY87fimPp0qVey4urszjnb/mxZcuWi4678JYf5y1ZssRcffXVJjQ01ERGRprhw4d7bhNy3qX6AKB0bMaU8luqAAAACBi+0wYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABurnsJhYWFOnTokOrVq8efYgEAAOXOGKPjx48rOjr6ojfOJrRdwqFDh9SsWbNAlwEAAKq4//znP7rssstKXE9ou4R69epJOjeRdrs9wNVYh9vt1urVqz1/HggVi/kPHOY+sJj/wGL+yyYvL0/NmjXzZI6SENou4fxHona7ndDmA7fbrdq1a8tut3PgBgDzHzjMfWAx/4HF/P8yl/oaFhciAAAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAZYKbRs2bNDAgQMVHR0tm82m5cuXX3Kb9evXq2vXrgoNDVXr1q21ePFiv9cJAABQ3iwV2k6ePKnOnTtr3rx5pRqfkZGhAQMG6Prrr1d6eromTZqk0aNHa9WqVX6uFAAAoHzVDHQBvrjxxht14403lnr8/PnzFRMToz/84Q+SpPbt2+uLL77Q7NmzlZCQ4K8yAQAAyp2lQpuvUlNTFR8f77UsISFBkyZNKnGb/Px85efnex7n5eVJktxut9xut1/qrIrOzxVzFhjMf+Aw94HF/AcW8182pZ2vKh3anE6noqKivJZFRUUpLy9Pp0+fVq1atYpsM2PGDE2fPr3I8tWrV6t27dp+q7WqSklJKdW4nTt3atmyZdq3b5+OHTumRx99VNdcc41nvTFG7777rlJSUnTy5Em1a9dO999/v6Kjoz1jli5dqq+//loZGRmqWbOm3nnnnSKv86c//Um7d+9WZmamLrvsMs2ZM+cX72NlVtr5rwjl0ePjx4/rT3/6k7Zs2SKbzaa4uDiNHj3acyy7XC698cYb2rdvn/773/+qe/fuevzxxyt8X6XKNfcVbcWKFVq2bJlycnLUsmVLjRkzRldccYWkcz1atGiRvvjiC7ndbnXp0kX333+/IiIiPNv/+OOPmj9/vrZv365atWrp+uuv1z333KMaNWpIkrKzs7Vo0SLt27dPhw8f1oABAzR69GivGqrz/FeES/X4jjvuuGiPL/VeXJmO5Ypw6tSpUo2r0qGtLB577DElJyd7Hufl5alZs2bq27ev7HZ7ACuzFrfbrZSUFPXp00fBwcGXHB8UFKTjx49rypQpuvPOO9WtWzf179/fs37WrFlatWqV3nzzTbVs2VJPP/20Zs2apW+++UZhYWGSpC1btqhLly46ePCgFi1a5LX9eSkpKerbt682b96s7du3FzumKvB1/itCefR44MCBysnJUUpKitxut8aMGaPly5frr3/9q6Rz33v97LPPdOedd2rZsmUKDQ2t8B5XxrmvSO+//74WL16sefPm6Ve/+pVeffVVvfDCC9qxY4caN26sCRMmaMeOHfrggw8UHh6uBx98UH/84x/1+eefS5IKCgrUvXt3ORwOffHFF3I6nbr33nt1xRVX6LnnnpMkHThwQFu3btXIkSP1yiuvKCYmxtPn6j7/FeFiPa5fv75uv/32i/ZYuvR7cWU4livS+U/1LslYlCSzbNmyi475zW9+Yx588EGvZQsXLjR2u73Ur5Obm2skmdzc3DJUWX25XC6zfPly43K5fN72wt4WFhYah8NhZs2a5VmWk5NjQkNDzbvvvltk+0WLFpnw8PCLvsa0adNM586dfa7NKn7J/FeEsvR4165dRpLZsmWLZ8ynn35qbDabOXjwYJHXSExMNLfccovf9qEklX3u/S02NtaMHz/e87igoMBER0ebGTNmmJycHBMcHGyWLl3qWb97924jyaSmphpjjFmxYoUJCgoyTqfTM+aNN94wdrvd5OfnF3m9Xr16eb3PV/f5rwgX6/GPP/5oatas6fXefGGPf64078WBOpYrUmmzhqWuHvVVXFyc1qxZ47UsJSVFcXFxAaoIZZGRkSGn0+n1/cTw8HD16NFDqampAawM5aU0PU5NTVVERIS6d+/uGRMfH6+goCBt2rSpwmtGUS6XS2lpaV59DAoKUnx8vFJTU5WWlia32+21vl27dmrevLlXnzt16uT11ZaEhATl5eVp586dFbczKNalerx161adPXtWN9xwg2f9hT1G2VkqtJ04cULp6elKT0+XdO6NPj09XZmZmZLOfbQ5YsQIz/j7779f+/fv15QpU/Tdd9/p9ddf1/vvv6/JkycHonyUkdPplKRiv594fh2srTQ9djqdaty4sdf6mjVrKjIykt+DSuLo0aMqKCgosY9Op1MhISFe3236+Xqp5O8in1+HwCpNj2vWrHnRHqPsLPWdtq+//lrXX3+95/H5754lJiZq8eLFOnz4sCfASVJMTIw++eQTTZ48WXPnztVll12mP//5z9zuo5IoKDTanJGtI8fPqHG9MMXGRKpGkC3QZaEc0eOq7+c9tp06Fuhy4Af0uPKwVGjr3bu3jDElri/urx307t1b27Zt82NVKIuVOw5r+ke7dDj3jGdZk/AwTRvYochYh8MhScrKylKTJk08y7OystSlSxe/14qyKe8eOxwOHTlyxGu7s2fPKjs727M9KtaFPTYFbikoSJ9u3u31NZSsrCw5HA45HA65XC7l5OR4nYk5v1461+fNmzd7vU5WVpZnHSpWWXp8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Hh6utWvXauvWrbLZbLLZbNq2bZvWrl2rs2fPasmSJercubO+/PJLf9QLAABQLfl8ps3hcOiuu+7Sa6+9pqCgc5mvsLBQDz74oOrVq6f33ntP999/vx555BF98cUX5V4wAABAdeTzmbY333xTkyZN8gQ2SQoKCtIDDzygBQsWyGazacKECdqxY0e5FgoAAFCd+Rzazp49q++++67I8u+++04FBQWSpLCwMG7/AQAAUI58/nj0nnvu0ahRo/T444/rV7/6lSRpy5YteuGFFzRixAhJ0ueff64rr7yyfCsFAACoxnwObbNnz1ZUVJRmzpyprKwsSVJUVJQmT56sRx55RJLUt29f9evXr3wrBQAAqMZ8Dm01atTQE088oSeeeEJ5eXmSJLvd7jWmefPm5VMdAAAAJJUhtP3chWENAAAA/lGm0PbBBx/o/fffV2Zmplwul9e6rVu3lkthAAAA+B+frx595ZVXlJSUpKioKG3btk2xsbFq0KCB9u/frxtvvNEfNQIAAFR7Poe2119/XQsWLNCrr76qkJAQTZkyRSkpKZo4caJyc3P9USMAAEC153Noy8zMVM+ePSVJtWrV0vHjxyWduxXIu+++W77VAQAAQFIZQpvD4VB2drakc1eJfvXVV5KkjIwMGWPKtzoAAABIKkNo+3//7//pn//8pyQpKSlJkydPVp8+fTRkyBDdeuut5V4gAAAAynD16IIFC1RYWChJGj9+vBo0aKCNGzfq5ptv1n333VfuBQIAAKAMoS0oKMjrj8UPHTpUQ4cOLdeiAAAA4K1M92k7c+aMvv32Wx05csRz1u28m2++uVwKAwAAwP/4HNpWrlypESNG6OjRo0XW2Ww2FRQUlEthAAAA+B+fL0R44IEHNHjwYB0+fFiFhYVePwQ2AAAA//A5tGVlZSk5OVlRUVH+qAcAAADF8Dm03XHHHVq/fr0fSgEAAEBJfP5O22uvvabBgwfrX//6lzp16qTg4GCv9RMnTiy34gAAAHCOz6Ht3Xff1erVqxUWFqb169fLZrN51tlsNkIbAACAH/gc2p544glNnz5djz76qNf92gAAAOA/Pqcul8ulIUOGENgAAAAqkM/JKzExUUuWLPFHLQAAACiBzx+PFhQUaObMmVq1apWuuuqqIhcivPzyy+VWHAAAAM7xObRt375dV199tSRpx44dXut+flECAAAA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+S+b85/qXUpAQ9tDDz2kkSNHXnRMq1at5HA4dOTIEa/lZ8+eVXZ2tk/fV+vRo4ckae/evSWGttDQUIWGhhZZHhwczC9gGTBvgcX8Bw5zH1jMf2Ax/74p7VwFNLQ1atRIjRo1uuS4uLg45eTkKC0tTd26dZMkrV27VoWFhZ4gVhrp6emSpCZNmpSpXgAAgECxxH3a2rdvr379+mnMmDHavHmzvvzyS02YMEFDhw71XDl68OBBtWvXTps3b5Yk7du3T88++6zS0tJ04MAB/fOf/9SIESN03XXX6aqrrgrk7gAAAPjMEqFNOncVaLt27XTDDTeof//+uvbaa7VgwQLPerfbrT179ni+zBcSEqLPPvtMffv2Vbt27fTQQw/p9ttv10cffRSoXQAAACgzS1w9KkmRkZEXvZFuy5YtZYzxPG7WrJk+//zziigNAADA7yxzpg0AAKA6I7QBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGwAAgAUQ2gAAACyA0AYAAGABhDYAAAALILQBAABYAKENAADAAghtAAAAFkBoAwAAsABCGyqFDRs2aODAgYqOjpbNZtPy5cu91n/44Yfq27evGjRoIJvNpvT09CLPsWDBAvXu3Vt2u102m005OTlFxjz//PPq2bOnateurYiICL/sC4pXHj0+c+aMxo8frwYNGqhu3bq6/fbblZWV5TVm4sSJ6tatm0JDQ9WlSxf/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r/ULFixQRESEPv/8c910002e5XfddZeSkpI8jzMyMiSdO4MXERFRploAWAehDUCVdv311+uNN97QyZMnNXv2bNWsWVO33367JGnv3r06deqU+vTp47WNy+XS1Vdf7Xk8b948LVy4UJmZmTp9+rRcLpe6dOnicy2XXXaZjDE6deqUOnfurL///e8KCQlRVlaWnnzySa1fv15HjhxRQUGBTp06pczMTK/tu3fv7vsEAKgyCG0AqrQ6deqodevWkqSFCxeqc+fOevPNNzVq1CidOHFCkvTJJ5+oadOmXtuFhoZKkt577z397ne/0x/+8AfFxcWpXr16mjVrljZt2uRzLf/6179kt9vVuHFjr489ExMT9dNPP2nu3Llq0aKFQkNDFRcXJ5fLVWRfAFRfhDYA1UZQUJAef/xxJScn66677lKHDh0UGhqqzMxM9erVq9htvvzyS/Xs2VO//e1vPcv27dtXptePiYkp9mPML7/8Uq+//rr69+8vSfrPf/6jo0ePXvL5QkJCJKnMV6ACsBauHgVQrQwePFg1atTQvHnzVK9ePf3ud7/T5MmT9dZbb2nfvn3aunWrXn31Vb311luSpDZt2ujrr7/WqlWr9O9//1tTp07Vli1byrWmNm3a6K9//at2796tTZs2afjw4aW6qKBFixay2Wz6+OOP9eOPP3rOHAKomghtAKqVmjVrasKECZo5c6ZOnjypZ599VlOnTtWMGTPUvn179evXT5988oliYmIkSffdd59uu+02DRkyRD169NBPP/3kddatPLz55ps6duyYunbtqnvuuUcTJ05U48aNL7ld06ZNNX36dD366KOKiorShAkTyrUuAJWLzRhjAl0EAAAALo4zbQAAABZAaAMAALAAQhsAAIAFENoAAAAsgNAGAABgAYQ2AAAACyC0AQAAWAChDQAAwAIIbQAAABZAaAMAALAAQhsAAIAF/H/0Rx+/rV1T+wAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 700x700 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "constellation = sionna.phy.mapping.Constellation(\"qam\", num_bits_per_symbol)\n",
    "constellation.show();"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d95dd632",
   "metadata": {},
   "source": [
    "We now need a [Mapper](https://nvlabs.github.io/sionna/phy/api/mapping.html#sionna.phy.mapping.Mapper) that maps each row of b to the constellation symbols according to the bit labeling shown above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e7d79b3f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-10T21:58:46.421098Z",
     "iopub.status.busy": "2025-03-10T21:58:46.420676Z",
     "iopub.status.idle": "2025-03-10T21:58:46.783449Z",
     "shell.execute_reply": "2025-03-10T21:58:46.782586Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<tf.Tensor: shape=(10, 1), dtype=complex64, numpy=\n",
       "array([[ 0.31622776+0.31622776j],\n",
       "       [-0.94868326-0.94868326j],\n",
       "       [ 0.94868326-0.94868326j],\n",
       "       [-0.31622776+0.94868326j],\n",
       "       [ 0.94868326-0.31622776j],\n",
       "       [ 0.94868326+0.31622776j],\n",
       "       [ 0.31622776-0.31622776j],\n",
       "       [-0.31622776-0.31622776j],\n",
       "       [-0.31622776-0.94868326j],\n",
       "       [-0.31622776-0.31622776j]], dtype=complex64)>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mapper = sionna.phy.mapping.Mapper(constellation=constellation)\n",
    "x = mapper(b)\n",
    "x[:10]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bb549a7f",
   "metadata": {},
   "source": [
    "Let us now make things a bit more interesting a send our symbols over and [AWGN channel](https://nvlabs.github.io/sionna/phy/api/channel.wireless.html#sionna.phy.channel.AWGN):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "5b74e2d5",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-03-10T21:58:46.787288Z",
     "iopub.status.busy": "2025-03-10T21:58:46.787084Z",
     "iopub.status.idle": "2025-03-10T21:58:47.375006Z",
     "shell.execute_reply": "2025-03-10T21:58:47.374305Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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0LdvX+d7FRcXY/To0QCAjRs3Srb1lltuQX19vdv021dffYXTp0/jlltuAQAIgoAPP/wQ1157LQRBcPuMcePGoby8HDt27AAAfPHFF0hJScGNN97ofL/o6Gjcc889sv52Y8eORU5ODiZNmoTdu3fjxRdfxLhx49CxY0e36dy4uDhMnjwZq1atgiAIAICGhgasXr3aOV3q6qabbkJcXJzz35dccgkAYPr06WjVqpXb43V1dR6rYjt06OB2DGJjY3H77bdj586dKCwsdP7uw4cPx2WXXeZ8XuvWrXHPPffg6NGj2L9/v9ffOSoqChEREfj6669RVlYm6+9ERMwhIyI/li1bhqysLHzwwQeYMGECiouL3ZLpjxw5AkEQsGDBArRr187tf08//TSACwnseXl5PqfugMbptH379nm8V+/evd3ey5tBgwahb9++WL16tfOx1atXIykpyRnQ/fLLLzh9+jRee+01j8+YMWOG22ccO3YMPXv2dAaLoj59+sj62wHAxRdfjI8++ghlZWXYunUr5s+fjzNnzuDGG290C2puv/12HD9+HP/73/8AANnZ2SgqKsJtt93m8Z5dunRx+7cYnHXu3Nnr400DI2+/k/j3Faekjx075vX37Nevn/Pn3thsNrzwwgv48ssvkZycjMsvvxwvvviiM9AjIu+YQ0ZEPg0fPty5yvK6667DZZddhmnTpuGHH35A69at4XA4AAD/93//58zRaqpnz56yP8/hcGDAgAH461//6vXnTYOOpm655RY888wzKC4uRps2bbBmzRpMnTrVOXIktnf69OkeuWaigQMHym6vXBEREbj44otx8cUXo3fv3pgxYwbef/99Z9A6btw4JCcnY8WKFbj88suxYsUK2O12ZGRkeLxXeHi418+QelwcdQuV2bNn49prr8Unn3yCdevWYcGCBXjuueewYcMGDBkyJKRtITILBmREJFt4eDiee+45XHnllVi6dCnmzZuH7t27AwCsVqvX4MFVjx49kJub6/c5u3fvxpgxYzxGceS45ZZbsGjRInz44YdITk5GRUUFpkyZ4vx5u3bt0KZNGzQ0NPhtb9euXZGbmwtBENza8sMPPyhulysxwC0oKHA+Fh4ejmnTpmH58uV44YUX8Mknn2DmzJmSQVYwxFFN19/p0KFDAOBMuu/atavX3/PgwYPOn/vSo0cPPPLII3jkkUdw+PBhDB48GH/5y1+wYsUKlX4LouaFU5ZEpMgVV1yB4cOH46WXXkJNTQ3at2+PK664Av/85z/dAgzRL7/84vzvG264Abt378bHH3/s8TxxFOfmm2/GiRMn8Prrr3s8p7q6GpWVlT7b169fPwwYMACrV6/G6tWrkZKSgssvv9z58/DwcNxwww348MMPvQaHru2dMGECTp48iQ8++MD5WFVVFV577TWfbRBt3LjR6+jUF198AcBz6vO2225DWVkZfve73+Hs2bOYPn26rM9R6uTJk27HoKKiAv/+978xePBg2O12AI2/+9atW5GTk+N8XmVlJV577TV069YNaWlpXt+7qqoKNTU1bo/16NEDbdq0kV0uhKgl4ggZESn2+9//HjfddBOWL1+Oe++9F8uWLcNll12GAQMGYObMmejevTuKioqQk5ODn3/+Gbt373a+7oMPPsBNN92Eu+66C8OGDUNpaSnWrFmDV199FYMGDcJtt92G9957D/feey82btyIUaNGoaGhAQcPHsR7772HdevWOUeYpNxyyy146qmnEBkZibvvvtujmv/zzz+PjRs34pJLLsHMmTORlpaG0tJS7NixA9nZ2c7aXTNnzsTSpUtx++23Y/v27UhJScF//vMfREdHy/o7Pfjgg6iqqsL111+Pvn37oq6uDt9++y1Wr16Nbt26OXPWREOGDEF6erpzYcPQoUPlHhJFevfujbvvvhvbtm1DcnIy3nzzTRQVFeGtt95yPmfevHlYtWoVrr76ajz00ENITEzE22+/jfz8fHz44YeSOyQcOnQIY8aMwc0334y0tDS0atUKH3/8MYqKitxGKomoCd3WdxKRoYllL7Zt2+bxs4aGBqFHjx5Cjx49hHPnzgmCIAh5eXnC7bffLtjtdsFqtQodO3YUrrnmGuGDDz5we21JSYkwa9YsoWPHjkJERITQqVMn4Y477nArQVFXVye88MILQv/+/QWbzSYkJCQIw4YNExYtWiSUl5c7n9e07IXo8OHDAgABgLBp0yavv19RUZHwwAMPCJ07dxasVqtgt9uFMWPGCK+99prb844dOyZMmjRJiI6OFpKSkoSHH35YyMzMlFX24ssvvxTuuusuoW/fvkLr1q2FiIgIoWfPnsKDDz4oFBUVeX3Niy++KAAQnn32WY+fiSUmmpaU2LhxowBAeP/9990e93YMu3btKkycOFFYt26dMHDgQMFmswl9+/b1eK0gNB7TG2+8UYiPjxciIyOF4cOHC59//rnXNollL4qLi4UHHnhA6Nu3rxATEyPExcUJl1xyiVvpECLyZBGEEGd7EhGRpJdffhlz5szB0aNHPVZTElHzxYCMiMggBEHAoEGD0LZtW5/11oio+WEOGRGRziorK7FmzRps3LgRe/fuxaeffqp3k4goxDhCRkSks6NHjyI1NRXx8fG4//778cwzz+jdJCIKMQZkRERERDpjHTIiIiIinTEgIyIiItIZk/r9cDgcOHnyJNq0aRPQNi5ERETUcgmCgDNnzqBDhw6SBZUBBmR+nTx50u9mxkRERES+/PTTT+jUqZPkzxmQ+dGmTRsAjX/I2NhYnVsjT319Pb766itcddVVsFqtejeHZOJxMyceN/PisTMnsx23iooKdO7c2RlPSGFA5oc4TRkbG2uqgCw6OhqxsbGmOFmpEY+bOfG4mRePnTmZ9bj5S3tiUj8RERGRzhiQEREREemMARkRERGRzhiQEREREemMARkRERGRzhiQEREREemMARkRERGRzhiQEREREemMARkRERGRzhiQEREREemMARkRERGRzhiQEREREemMARkRERGRzhiQEREREemMARkRERGRzhiQEREREemsld4NICIiopatwSFga34pTp2pQfs2kRiemojwMIvezQopBmRERESkm8zcAiz6bD8Kymucj6XEReLpa9MwPj1Fx5aFFqcsiYiISBeZuQW4b8UOt2AMAArLa3Dfih3IzC3QqWWhx4CMiIiIQq7BIWDRZ/shePmZ+Niiz/ajweHtGc0PAzIiIgq5BoeAnLwSfLrrBHLySlrMTZcu2Jpf6jEy5koAUFBeg635paFrlI6YQ0ZERH6pmXTNnCECgFNnpIOxQJ5ndgzIKGhcHUNa4HllHGoGUGLOUNPxMDFn6JXpQxmUachI36v2bSJVfZ7ZMSCjoPi7UBvpy0/aU+t4cwTFONQMoPzlDFnQmDM0Ns3O64QGjPa9Gp6aiJS4SBSW13g9JywA7HGN15GWgAEZBczfhfqey1OxZneBYb78pC21LvYcQTEOtQMoJTlDI3u0DbTZ5IURv1fhYRY8fW0a7luxAxbArW3i2fT0tWktJjhnUj8FxN+FWgDwz2/yuZTZQLRMolZr6TpXXRmL2knXzBnSh5G/V+PTU/DK9KGwx7lPS9rjIltc54sjZBQQfxdqKZyW0IeWUxUNDgEL16gzisIRFGNRO4BizpA+jP69GptmR5tIK3LySgAIGNk9CSN6tG1x9wcGZBSQYHqwen/5WxpfUxX3rtiBORm90C0pxm/Ol1R+2NINh1FYoc7FniMoxqJ2AMWcIX0Y+XvlrbP44Y4TLTK1hQEZBUSNHixvqtpqcAjY8mMJ5n241+dUxZLsw87HpEbNpEbYJg1KwT+/yZfVHjnHmyMoxqJ2AMWcIX0Y9XtlxLw2PTGHjAIiXqiDuWzypqqdzNwCXPbCBtz6r+9wurpe9uu85Xz5yg+TG4wB8o63v/PKgsZAkCMo2nHNNdyaX4oFE9MAwOOYBBpAMWco9Iz4vTJyXpteOEJGAZUq8NfT9fUV4rSEtqR6nXI0zfnC+f/2ddGUQ+7FniMo+pIaCfW2YtoeRA7i+PQUjE2zsyROiBjxe2X0vDY9MCBr4YJJ9hZ7uk1fbz8/lfXa+dETI3z5WwpfvU65xAvhlh9LcLCgIqDFG00pOd6+zquWmFcSKr6mj177Jh/Lpg1BQoxNtQAqPMzSYm60RmC071Wo89rMUBOTAVkz4XqyJUXLO6xqzN/76ukO6ZJgmC9/SxHo6ldv7n9nB8oVTHdKmZPRW/Hx5ghKaMmpN7Z47QH89/dXYvuxMpw60zhywWNiLkb6XoUyr81oBXGlMCBrBpqebLZwAS8OB7IPFOHqgZ28vkbNgo9SPV0jfflbCjUXSqgRjNljbZg1umdAr+UISujInT4a8Vw2SisvnBe+bmpmGJFoiYzyvSqrrEOYBZBKEVMrtcVMCwcYkJmcr3yhOat3wRIW7vVkC9X8vVG+/C2F0RZK1JxzIGt/oWEueOSd3EDeNRgDpG9qZhmRIH18vuskZr270+/zgk1tMdtWXVxlaTKuK6A2HynGwjX7fOYLSa1S0Xr+Xsuq8CRNjdWvaiqvqufODCYQaCDvuhqu7pwDOXklWPzZPtyrwq4NeuG1S1vPrN3vNxgLswDLpg0JOnhXe6cJrXGEzES89Tp98TXKpeX8PXvH+nFdTRUIfytklTJiL5Q8DU9NhD020meBXykXpjPXo7SyzufzfJ0LRpji5LVLW899sR+v/89/qRyHACTE2IL+PCMXxPWGI2QmIVULSg5vJ5tWdWnU2tOQAieupoqPsip+rRZjAUbrhZKnrP2FqDnXENR7+ArGRFLnglg3b+rrW/Dwu7sw9fUtuOyFDSG9XvDapa26cw5ZwZhIjSDJqAVxpTAgM4FgSxl4O9nEkRTAe8FHAcDV6XZsySvB5iPFsobvWejPOManp2DZrUP1boYbo/RCyZ0YiJyuCn4Rh1yu54IRAiFeu7T3n5yjkgn83sgNknxNMctJ4bDH2gxTE5NTliYQTCmDxBgrhnVNQE5eidtUAADERUXgrlHd8PGuE27JuhYLIAjAm5uP4s3NR93ez9fwPQv9GcuI7m19bnsTakbphdIFjRvD+85D1YJ4Lvj6/FBOd28/VsZrl0oaHAK25JUg58diAI2LukZ0b4tjpVWy30Pu7Ez2gSL8Ye0PklPMvgriioy08MhUI2TffPMNrr32WnTo0AEWiwWffPKJ39d8/fXXGDp0KGw2G3r27Inly5dr3k61BTOyMKRzPH79p41uUwHD/piFYX/MwtTXt+CNzUdRWlmPxJgIjOnbDoD0MmTAd6/VbPP1zZ2vUVA13TCkA+yxxtqWheRZuuEICitqQ/qZriMS/j4/VNPdxWfl/Q147fJOHKVa/Nk+DFy0Dre+8R2WbszD0o1HcOu/vsOwP2ahqlb+lLjc1ZVzVu/yO7IqpnDERXtP4TDSwiNTBWSVlZUYNGgQli1bJuv5+fn5mDhxIq688krs2rULs2fPxm9/+1usW7dO45aqK5iRhfUHf/E4YU9X1XtMT5RV1mH9wV/8vp+v4Xuzzde3BFL7Bqppc14JnrpG3f0OSXuZuQVYkn0o5J8rjkgo+XytA6Gk1vISyHnt8uSa//fG5qOo9BJ4na6qxwc7flbtM8V7j9wp5rFpdkS2Cvf6XkaakjbVlOXVV1+Nq6++WvbzX331VaSmpuIvf/kLAKBfv37YtGkTlixZgnHjxmnVTNUNT01EfLRV0xwPJaeh1PC9OF8vNUXGPSz10bRAb1KMDY+8vxtFFepMZRZW1CIhJsJQ27KQb2LOlB7EEQmpEQtvtA6EhnVN4LUrAF/sKcD9KwNb0e3LvI/2oo3NihE92jo7cq6rcEsqquBr4rjpPWprfqnPFcRGmZI2VUCmVE5ODjIyMtweGzduHGbPni35mtraWtTWXhi+rqioAADU19ejvj50Sa+uGhwCbGECbOHybp+2MMHt/7VSeLoSmw+dQ/HZWiS1tmFY1wQ8NbEP5qzeBcD7HpZPTewDR8M5OIJb0NUsieeXVufZRV1iAcQCAJ6+xvtxCtSp8kpMGJCCK3r9CtuPlbmdE+FhFt2+O6Gg9XHTwtb8UpSerYbN+6CBIhHhYahrcCh+XXVtnazPt8dGYkinNpr8fcX3dDSc47VLoa/2FeL/PtityjnUVHVtHe5avgX22EjMu7ovAOD5Lw86gypbmIDFF/m/x50qr0R9fSxOlVfKun+Kz1eb3HPXIgiCEfJ9FbNYLPj4449x3XXXST6nd+/emDFjBubPn+987IsvvsDEiRNRVVWFqKgoj9csXLgQixYt8nh85cqViI6OVqXtRERE1DJUVVVh2rRpKC8vR2ysdMDXrEfIAjF//nzMnTvX+e+Kigp07twZV111lc8/pJa+2FuARz/cI/v5jb0HBxZ8H4ZaR+jydsRPWnLLYFzZp73XkRKSVl9fj6ysLIwdOxZWq/IaYq6yDxS59SgBOHubGf2SATSOvG7LL8W2oyUALLg4NREQgN/+5/uAPzfMAtw5sivmXtUXDQ6hRZwDah63UNmaX4q73t7m93kPXNEDvZLbeJxLidEReHJiGuKjrbLeJ1APXNED912hbC9UOee+yNuxaynnbaAaHALGvfRNQEWE1SLnHmePjcS62ZcjPMzibLNUmoYFQLLL89UmzrT506wDMrvdjqKiIrfHioqKEBsb63V0DABsNhtsNs8ET6vVqtvFtn1cDGoblJ8ktQ5LQK8L1h/W/oCr0jtiVO9k/08mD8Gea5m5Bbh/5e7zF54Lx/94WS3uX7kbr0xvrE/mUZF8ZwGuGZiCOocFwYybv/K/4zhSUoPcExUtquK5ntcIpUb0bI+EmCifN9WUuEjce2UfbD9Whtlj+6K0sg6JrW2wx16oov/prhOaXWNS4iLxwJi+XnOIpCr5yzn3vZ1/rsfOCvDa5cP3eSU4VlYLbdduy+PrHjd/Yn9E2iIANB7T+RP7O3cw8TYl7fp8tcm9LjTrgGzkyJH44osv3B7LysrCyJEjdWpRYOQky8fYWuFs7blQN80rIyRHtlRyNtOd/9FelHlZIFJQXqOokrYvWftPeTzWdCNqI2yV01L5qswvHoFJg1Lw6z9t9BpUi8dJy2T7SYNSnJ8jZ0sjs20kbVZmKP1x96huHoG3uOLcyAuPTBWQnT17FkeOHHH+Oz8/H7t27UJiYiK6dOmC+fPn48SJE/j3v/8NALj33nuxdOlSPProo7jrrruwYcMGvPfee1i7dq1ev0JAfBW3E/9tlGBMpOdwdksmpzivt2AsFFxvig6HgMVrD7SoETSjECvjSw2CxkdbcfNFnfDaN/kez2kaVPvrLAbjtW/yMaRLAgB4bW/TtrAwdWiYofRHRprda4ev6Ypzo3UETRWQff/997jyyiud/xZzve644w4sX74cBQUFOH78uPPnqampWLt2LebMmYOXX34ZnTp1wr/+9S9TlbwQSUX38dFW3W6wvpTKLLRI6jJ671W8Kd6/cqfHz5reYEl9crZhiwi34NNdBbJHmvxVQg+UcP5zBEGQ1RYWplaX1Ai2lkF4sMTyJGWVdbjshQ2SHT6jBuSmCsiuuOIK+FoU6q0K/xVXXIGdOz0v/mbkUU+qtQ2zNKgBo4bEGG3m4sk3M/RepXBaSXtytmErOuN7k/CmI01iZ3HeR3tVr5Xor62ubWFhavX4myLWKggPlgDgmoEpeGCl/xFVIzJVpX5qnL4c2aMtJg/uiDCLxZCjYwBgj/O+aMIfcQuOj3f8jDf+9yM+3ul/U3O6QM5mukYWqq1yWio1R4fe3PQjNh8uRoNDOF8JXb/byakzNX7PfW7hJY+czd6ldgCJj7YiXkHBXy28sclzqh0wVkV+KaYaISN3Rh16t8fa4BAEfLrrhKI5em+9MhHzi+Txl28IAHHRVpRX1RuqZ9uUUc9ts1NzdCjrwClkHTiF+GgrZlzaLeR7Yrpq3ybS7/SpAGDBRG7h5YuShRFj0+xoY7M6NxFvFWbBy+sP635d8RVrGT2PkAGZiRl16L3mnAO3/us757/lBFP+Eo0LTDDcbBT+VhMB0GW6QcnnGfXcNjs5K7aTY20ALLK31jpdVY8l2YfVbahMTbc0kjr3RYvX7kdYGHgNkSB3YcTSDUfw7rbjbs8Nsxhr+tIXo3b4OGVpYuLF1SjEoeqmeSSuQ93eyEk0Fhl5uNlIxqenYNNjo7Fq5gi8PGUwVs0cgf/+/krERUWg9pwDszN6Iy4qtFMLFgsw81epfqdUwyyNm92T+sRRJEB6I/iFk/pj4aS0kLYrEFIb149PT8GCif28vsbftailkxuoLMk+5BG4hfKyHBMR3H5NSa1tyMkrwae7jJUSw4DMxMLDLJg0SN+eXmKMFUtuGYx37r4Eka28f0n8zd3LSTQW34f5RfK55huWV9fh13/aiKmvb8HD7+7CkuxDOF0d2vxDhwD863/5fs9ZhwA8sJI3Ta1I5f/Y4yKdI9DicxJjjFPotmlbXNvrquF8SRVvzJBHpCezjExX1gW2oagFQEK0FY+8t8t5LZz6+hZc9sIGQ1xvOGVpYg0OAWt263sSPXv9AIxPT0FOXonP2mO+5u6VDh8bdbjZqPxNB4famt0F+PuUIXho9U6fvWquttSOnHpM49NTUF3vcG64rbcF1/SHPTbSb/0oJfXILuqiz3Z4RmWkkhbxUa1wulq9+ppiyoS3hXBGWYHJgMzE5I4saWVORi/nyRtMDSClvTKz9OKMQMl0cCiIN8OiMzWmTr5tDsQRVF/sscb5rtljI2WdC8quRQzIXMkpQh4KMRFhKA8yGAuzuE+j2uMiUV3f4LU0i1FK7jAgMzE9R4rio6yYNbqX89/B1AASe2X+gsumCbzknxZBe3y0Neh6U8dKq2Q9j6Oh+hqemoi4qFZB3xyDofR7z3pkwfG1KGjKxZ1DsoCjss4R8GvFUGrp1CFIiLE5R1QdDgG3vvGd5OuM0AlkQGZiel5QZozq5taLkLN6S+qi6tor89cDa5rAS74FE9C0iWyFMzWeN+LIVmGYk9ELFdX1eGPz0YDeu2titKzn8aapr6z9hboHY4Cy772Sa5GjwVhbzhmF1JQ2ALy77SfFU5pXp9vxZW6hJm1NjIlAqcsiIKm9KT/ddULW++nZCWRSv47EIqiBrvTQqwhoQvSF0THxd/h8z0lMubgLAOnVW74uqmKvTGrVaIpEAi/5FkhAIxbQfO66dK8/L6qoxUvZh3FxaiJe9XHMfEluY2MRT4NrcAiY99FeRa+Jsbkv7EmJi8ScjN54ecpgjO9vV9wGqcR9X+SsJGXHzj/XRUEje7RFeJjF59/Wl6FdEhCv0aru6Zd0cVtNvumx0V7PFzOMnHKETCf+tqaQQ8t95KRYADz3mwEID7N4/R28lb6Q6rE05dorKyyvRmllHRJb22CPNdYGsGYyPDVR0RSj+BdeMDENi9fu9/oc13yLTY+NhsMh4MlPc1FaKX8a85kvD2LBxDQ8sFK6gC1vmvpauuGI4qnph0b3wsBO8R6J95m5BcjcJ2+EZMHEfkhqY5NVVFpqv0V/tfjYsQucv1pvTYVZgGe+8L7qVQ3/3nIMD2f09nqe1J1z4D85R3GstAqdE6KR3MaGU2dqFc/ihAoDMh1IrXqTu9Kj6UVo2bQhWLz2gOYJ/q4Bo9TvIFaAn5PRC92SYhRV6gfkJRqTdhJjIrB4cjoSYiJkF4h8KfuQ4s5AQXkNEmIieNM0qAaHgLc25yt+XWF5NX736x4e77XoM+/BfVNtYyJw28huiJCxDZO/Tq2claQUGNe/bdb+QrzpI3VB6+oip6vqveZ9PffFfrz+v3y3z7dYLnQojdgJZEAWYkq2pvB2YkhdhBZMTENCTETjpuPRrVB8YIsq7U2MseL6wR2RkWZ3Xszk/A7vbvsJmx4bzYufzrbmlyoa5SiprMPitftxdbq86aW3NnvfN06OzUd+Qa/kNvjzjYMAC1B8tpY3TYPYml8aUJ26t749hku6t3ULppUsLCmpbKyXF+jOHk07tezgaUf8247s0RbWcItH8BNKTfO+nvtiP/75jWeHQjjfvqiIcFS51DIzSieQAVmIKamR0/RCInURKiivwf0rd+Af04Zi8uCOqKmtw7oARogtAH77q1SM7pvsc8owmN+BQiuQBNXC8hqfPV5XwRSXXboxz/nf4sgGzxdjCDSx2VuH0ld9Qm/8zRQE26kl9TQ4BCzdcMRr8BNKrnlfdecceP1/vttTU9+A/9w1HKVVdYbqBDIgC7FA63XJqSc1a9UOLMUQxEUGtq1E+zY2DOuagPLqOry47gfJqYBgao5RaAWSoCq3kxsX2QrlXlZhBiKYvUql8ogocIEmNnvrjJWeVbbpuL+gih1CY8jMLcDCNft03VQeaFxk5pr39Z+co35H6hwCcKjoDO7+VXeNW6cMA7IQC3Slh5xhf4cA3L9yJ2Ze2gXe18f5VnSmFveu2OH1Z669VjOsVqFGWlbeHpuWjA92yFtKLocA5SMbaiyOIU/BnjeunbHEmAjFr1djZw92CLVjpN0/yqrqkbW/0Pl9l1vjUO7zQollL0LMX6kKqeX+Si4uH+78OfAGSnDdA25Y1wSWLDCwBoeAzYeL8ed1B7Ek6xBuuaiTc9RBTaN6tVO97IqSvUrFm0LTjgo3kA5eoOUNRK6dMXtcVMDtCGZnD3YItWG03T/E0VSxbJTcGodynxdKDMhCLNAaOUouLoFuvOqP2GvdfqyMdX4MKjO3AMP+mIVb3/gOSzfmYenGI3hp/RFEWsMQF6XugLg9NtJ5HqhJTufDXx4RwA2kg9HgEBAXFYEZo7ohockIl7+vdZgFKHMp1Cl2QgPha2cPdgj1ofeWfU25jqYCwG0ju8k6R28b2U3ztinFgEwHYh0Xe5OLlK8iiMFc1NR26kxNQL8DaSsztwD3rtjhdVVlTb0Dp6vP4ZqBKXh5ymC8c/clsMcGNrrlesMbn56Cey5PDbrtruR0PpTkEZEymbkFuOyFDZj6+ha8uflo4+KeGCvuHtUNq2aOwNKpQ3yeNw4BeGDlhRFKsROq9FyLj7LC4RA8Cmez8Ku+jDoVLLYrolUYZv7K9zVp5q9SZZVWCTXmkOlEaY0c8SIkleMVSu3bRDp70I+O6+Ncjdm+jQ0QgOLKWuTklTC5OoQaHAIWrtnn93mf7ynAhHQ7RvVKwsJJjUWFlWh6w2twCFizW72pwbYxEbJGNphHFByphRBSuUFllfV4c/NRXJyaiAkDO2AZgFmrdvpMnhbzAQE4R9s+2XXSbZsbX8412XuwaY0x1rDTh1ZTwdZwoD6IyR3Xds2f0BiwNy3FEWZpDMbEnxsNAzIdKa2RMz49Bf+YNhSzVu1QXO/l4m4J2Ha0TGELPaXERWLLjyW4b8V2t5IH3ir0M7k6dLbml8pe7fTkp7kYd/6m9vcpQ/Dg6p3O+jz+NL3hqT19sXhyuqwgnnlEgfNVy3DxWnnlJBJibD6vQRcKBx/Gu9t+cvus1rZwNDgEVNf73kD6bK37Ct6m5TBY+FUfWi0UCjQYk6qwP39CGh65qq+zUn/XxGjZRYf1woDMZCYMTMFSDMH9K3cqet30EV1x92Wpsre7kFJeXY+X1x/2eNzbNJncnQcoeEpGgkorGytbl1fX4anPcmUFY7Ou7IlRPZOcF72cvBIUVtTgvz+cCrTJHn53eSomDJR3ngSzmX1L5qug6v0rfY+Wuk4Dyz3flmR7XivO1l648yrZ8s1bOQwWfg09OVv2XTvQjs/2FIZsSz+pKeqIVmGGK23hCwMyE5owsANeDbMoCq7at4nEyB5tnT3K7P2F+HjXCdn7D1osjVWOqxQsGGCRxtBROhL075x8fJlbJPv5vZJbY2SPtl5HV4KVGGPFHyenY8LADrJf4+umwDwi7+QshJBDHI1SQ1yU1W2kPTHG6vOaxBpjxiA1Zew6KzJxoO9dZQrLq7Hg030eI6FKxEdZsei6gc2mw8+AzKTE4fotP5bg/hXbJQt0Nh0pcN3u4vGJac7e7tHiKryUfQiA94tzXGQrnK5W/sXhBTQ0hqcmwh5rkz1tqSQYAxoDPrVrD826sgdG9WwX8DQT84iUUWt6WZwaVLJpvZSwMAveufsSFFc2bptVWFGDOat3+X0dcwP152/K2N/PX84+FFQwBgDThndpVt9zBmQmFh5mwZmaelgkbmb+RgqaDvf3sbf22qOZcnEXLDkfrAWKF1BthYdZsHBSf9UXfYgB/bCuCfj1nzaqOv2QlhIbdJDOPCL5gv0OunbusvYXBh2MAUBpZR3CwiyYPLgjgMapcDmYG2gM/qaMpX7euHn90aA//5X/5qFPh3hZQZkZdvRgQGZi/kYs4hQO50rd3D7fczLotvICqr3x6Sl4dfpQzH1vt6KpZX+evjYN24+VqV57aPHaAxh3fgPoYDCPSB4l30Ff08BAYxqCL61trWSPfrgGiswNbBkC3bzeGzkpMWbZ0cO4yw3IJznVkiOt4c5l53KJN7fJgztiZI+2CA+zBBVMsUhjaI1PT8HehePw8JieiIkIbE9TUduYCLwyfSjGptmx6fAvil57/WD/+WCsExZacguq/mPaEJ/1BeVMfZ6tPYc2MvfUdb2+uNYYk8LcQPOTO1ob6WdFpJx6g2ba0YMBmUnJuSgWVqhzw/N3IZfC5Gp9hIdZMGdsH+xZOA6zruwZ0HskxliRM38MAOCyFzZg2dd5il5fc07eCB2nskNHbkHVCQM7YNNjo7Fq5gi8PGUwVs0cgU2PjXaOJMg9ZjcO7eT3Od46a2Kx4aaXjDALcM/lqYYa0aDAyO3kX9m3vaznSZ2TZtvRgwGZSYWyMKacfe1iIsKdtchErNqvr/AwC0b1TFL0Gsv5/z17/QBsOFjktWfpT3y0VfaiAU5lh5bcHTa8jZSL5B6zq/qn4Hc+dnGwwHtnLTO3AK99k+9R50wQgNe+yTfUiAYFRk4nPz7aiukjusp6P6lz0mw7ejCHzKRCXRhTakVbfJQVM0Z1w6zRvQDA8EmTLY3SIo7iCsWxaXZc9sIGTWsIcSpbH8EuhFCS5zWyR1sM6pSAJz/NdavQL5W/429Eg2V0mgc5tcye/80AjOje1u+55us6YrYdPRiQmZScG609Vt0bnpwLOZOrjUVOva7ZGb3RLSna7Xjm5JUElMQ/cYAda/cWynoup7L1E8xCCKU14CYMTMG4dHkBoJIRDV5rtBOKFYlyapkB8Bu4+bqOmG1HDwZkJiXnojjv6r6qf4m4os18AqnXFWiPcfMReWUL7h7VjVPZJqb0nJJ73TDbiEZzFMoViXI6+VLnGgAsuWWwzzaZbdUuAzITkzpRk2MjAVQio1+yfo0jQ1E6TRVoj1HuUvYMhat/yXi0qAFnthGN5sbX1lpabYPnq1aZ67n1399fie3HynDqTA2Soluh+MAWv/c4s+3owYDM5LxdFId0aoN1mV/q3TQyGCWjm8FsIBwfZUV5db0peqQUHLVHzM02otGcGCl/z9co3eTBHVFfX48vDsh7LzPt6MGArBloelGsr1en4B4ZR6irTMtJupUyY1QqXso+ZIoeKRmL2UY0mhOj5O/JGaUb00fZ6nGz7OjBgIzI4PSqMu0rd8MbcfRi1uieXrfhMmKPlIzHTCMazYkR8vfkjtJd0etXit/bDPnPDMiIDEyPnA5XTXuWUpvQNx29MEuPlIyJ50/oGSF/T+4o3fZjZZq1QU8MyIgMyig5HXI2ofc2emGGHikZF8+f0DJC/p7c0bfis7WatUFPDMiIDMooOR1NcfSCqPkxQv6e3NG3pNY2FGvWCv1w6yQigzJCTocUX1vrEJE5yd1aSyv+tlQSK/MP65qgaTv0whEyIoMyQk4HEbUseo6AG2GUTk8cISMyKLm9RdZkIiI16TkCrvconZ44QkZkUC29t0hELVNLzVNlQEZkYKzJREQtUUtcZcuAjMjgWmpvkYioJWFARmQCLbG3SETUkjCpn4iIiEhnHCEjIiIi1TQ4BKZYBIABGREREakiM7fAYxFSChchycIpSyIiIgpaZm4B7luxw2PLt8LyGty3Ygcycwt0apk5MCAjIiKioDQ4BCz6bL/XjcnFxxZ9th8NDm/PIIABGREREQVpa36px8iYKwFAQXkNtuaXhq5RJsOAjIiIiIJy6ox0MBbI81oiBmREREQUlPZtIv0/ScHzWiIGZERERBSU4amJSImLhFRxCwsaV1sOT00MZbNMhQEZERERBSU8zIKnr00DAI+gTPz309emsR6ZDwzIiIiIKGjj01PwyvShsMe5T0va4yLxyvShrEPmBwvDEhERkSrGp6dgbJqdlfoDwICMiIiIVBMeZsHIHm31bobpcMqSiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0xoCMiIiISGcMyIiIiIh0ZrqAbNmyZejWrRsiIyNxySWXYOvWrZLPXb58OSwWi9v/IiMjQ9haIiIiIv9MFZCtXr0ac+fOxdNPP40dO3Zg0KBBGDduHE6dOiX5mtjYWBQUFDj/d+zYsRC2mIiIiMg/UwVkf/3rXzFz5kzMmDEDaWlpePXVVxEdHY0333xT8jUWiwV2u935v+Tk5BC2mIiIiMi/Vno3QK66ujps374d8+fPdz4WFhaGjIwM5OTkSL7u7Nmz6Nq1KxwOB4YOHYpnn30W/fv3l3x+bW0tamtrnf+uqKgAANTX16O+vl6F30R7YjvN0l5qxONmTjxu5sVjZ05mO25y22magKy4uBgNDQ0eI1zJyck4ePCg19f06dMHb775JgYOHIjy8nL8+c9/xqWXXop9+/ahU6dOXl/z3HPPYdGiRR6Pf/XVV4iOjg7+FwmhrKwsvZtAAeBxMyceN/PisTMnsxy3qqoqWc8zTUAWiJEjR2LkyJHOf1966aXo168f/vnPf2Lx4sVeXzN//nzMnTvX+e+Kigp07twZV111FWJjYzVvsxrq6+uRlZWFsWPHwmq16t0ckonHzZx43MyLx864sg8U4fkvD6Kwosb5mD02EvOu7otf90w01XETZ9r8MU1AlpSUhPDwcBQVFbk9XlRUBLvdLus9rFYrhgwZgiNHjkg+x2azwWazeX2tGQ68KzO2mXjczIrHTZkGh4Ct+aU4daYG7dtEYnhqIsLDLLq0hcfOWDJzC3D/yt0QAAAXzonjZbW4f+Vu/GPaIADmOW5y22iapP6IiAgMGzYM69evdz7mcDiwfv16t1EwXxoaGrB3716kpKRo1UwiIvIjM7cAl72wAVNf34KH392Fqa9vwWUvbEBmboHeTSOdNTgELPps//lgzJ342PNfek9TMjvTBGQAMHfuXLz++ut4++23ceDAAdx3332orKzEjBkzAAC33367W9L/H/7wB3z11Vf48ccfsWPHDkyfPh3Hjh3Db3/7W71+BSKiFi0ztwD3rdiBgvIat8cLy2tw34odDMpauK35pR7nhisBcJvGDESDQ0BOXgk+3XUCOXklaHB4C/9CzzRTlgBwyy234JdffsFTTz2FwsJCDB48GJmZmc5E/+PHjyMs7EKMWVZWhpkzZ6KwsBAJCQkYNmwYvv32W6Slpen1KxARtVj+Rj8sABZ9th9j0+y6TV+Svk6dCS7Y8icztwCLPtvvFvSlxEXi6WvTMD5d39kzUwVkADBr1izMmjXL68++/vprt38vWbIES5YsCUGriIjIHzmjHwXlNdiaX4qRPdqGrmFkGO3baLebjjg627RDII7OvjJ9qK5BmammLIkoeEYdrqfmT+5Uk9ajJGRcw1MTkRIXCanxUQsaV1sqJSc3bdFn+3W9HppuhIyIAmfk4Xpq3jJzC7D4832ynqvlKElLYaRVrEqEh1nw9LVpuG/FDlgAtwBKbP28q/uiLn+7ovc1w+gsA7IWyqxfVgqc0YfrqfmSOveasgCwxzVejyhwZu94jU9PwSvTh3r8Dvbzv8OYPkn4Il/Ze8odddVzdJYBWQtk9i8rKcdkatKLr3PPlXjWPX1tGs/BIDSXjtf49BSMTbN7HTgIZMskuaOueo7OMoesheGS85ZJyXA9kZr8nXuixJgI0wQLRmWGPCklwsMsGNmjLSYP7oiRPdoGFajLyU1L0Xl0lgFZMyA3STuQLysTwJsHMwzXU/Mk95x6cmI/BmNBYsdLmpibBsAjKDPK6CynLE3O2/Rj1wQb5vb1fK7SpEZObTYfcofhDxedQU5eCXMKSTVyzz17XJTGLWn+2PHyzV9umt73NQZkJiaVK1B0fml59oEiXD2wk/NxJV/W5pKHQI3E4frC8hqfuTxLN+Zh6cY8xYE3F4k0f/6OsdTP/Z17TORXjxnypPS+VvjKTdMbAzKTkrvf11XpHZ0nmtwvYVKMDf/3wW4mgDcjvpaSe6Mk8OZIavPn7xhn5hZg4Zr9bnXG7LGRWDip8ef+yhiIU0V636zNzujBb+N5sg+FFbXOx+yxNiyc1D+k1woxN81omENmUnISZQsrarB8c74z/2tY1wSkxEkHZWJSIyxgHkIz0+AQEBcVgbtGdUNCjNXv8+UmAHORSPPn7xg/98V+3Ltih0fR18KKGtx7/hwQp4rsTa4/9rhIZ9DPDceDZ+Q8qczcgvPnSa3b44UVtc7zpKXjCJlJyZ1+XLz2gPO/U+Iikd4x1mew9fS1aSg+Wyv580DaQPryNrqRGBOBS1IT8WVuoeTr/BVKZCmN5k/OSPxr//NdEGr+R3sxNs3uc6qIKRLqMWKeVINDwLyP9vp8zrzz50lLvlYwIDOpQHIACsprfAZjo/u2Q1xUBBwyV1KymrbxSd3oyirrfAZjrqQCbzNUvqbgyBmJF/xcLsqq6rHlxxKM6pnkdaqIgb36jJYntSWvBKerfNcOO11Vjy15JRjVKylErTIeBmQmJTdJW4n1B3/B+oO/wB4bifhoK8qr6g2Zh0DyyBndkEMq8OaKruZPrWOXk9cYkHkTaGDPfDPfjJQnlfNjsezn+QrInMe8vNL5b/8JGObBgMyklCZpK1FUcSHI85aEKwCYcnFnfL7nJC+EBia3IKcU18Db283PDCu6KDjqHTv3K5Tr+XS46Kysd3ANDrmQxGzk3R8ENAbv3oJs12NuCxfw4nBg3EvfYP7E0C4I0BIDMhOTyhUIljhNEGNrhXALUF5zzvmzuOjG/siS7MPOx3ghNKbC8mrZz/W1+i1rf6HXm9+Cif0MvaKLgqfWSPzI7hdGPbwFU3KIwSHzzcxnZI+2WLrxiN/nrfzuOJZtzHP+W7y3AJAs8dScjjlXWZrc+PQUbHpsNFbNHIGXpwzGgon9VHlfAcDZ2nPOYCw+yoprBqagvKreIxeAK+qMJzO3wG1Bhy9zMnpJrn4DILnC7oGVOzFpUONF0Ggruig44g4dn+85iSkXdwEgfYyjI8J9vld8tBUjzk+dSa3Y9MV1S5vmtjVQSzGie1vER/ufXCzzcm+5d8UOzPtor6xjbvadZThC1gy45go0OAT8+9sfAVSq+hmnq+vx+R7vAZfrl4KJt/qTGkFoShzBmjW6F2aN7uUxJQkAl72wwWey9ZrdBVg2bSgWrzXOii4KjrcRLPFm6toZs7uMXty7Yofk+z173QBnjbGFa/YpGmkTryQLJqZha34pNh8p5kISnQSTsxceZsHzvxng8zzxRjxXfC0IEI/50g2H8e62n9zP2ygrZozqhlmje5nivsSAzASUfBHCwyyYd3Vf1OVvlzlrrx7xS/FwRu8QfzKJfI0geOM6gtX0BpaTVyLr5ldQXo3//v5KbD9WxgRrk5MK5sUFPnMyeqFbUozHMX51+lCPgp+ixWv3IywM+KHwrNef+2KPi8SkQSkeAb8/XEiiLjVy9sanp5w/T9wLCCfGRKC0si7oNrqm0YhOV9djSfZhvPXtUTz/mwGG7yAyIDO4QL4IGf2S8UU+kBwbiWNltW6vmzQoBWt2F6iac+ZqSfZh9LG3MfyJ31zJTeS3ALjn8lSP4+SebH1G1mcuXnsA/9qUj6evTcPkwR0DaTYZgJzyE+9u+wmbHhvtEWyPT0+BwyHg/pU7PV4rTjvJNevKHuiV3Abt20SirLIWD6zcqTh/jQtJ1KNmzl7TchxJrW3YfKQY//g6z/+Lg3C6qt4UuWYMyAws2C/CutmXY+fPZzymoS7v3R5vf3sUX+0v0qTdSqYuuXRdXXJHBgQAr32TjyFdEpznUKDJ1gATqpuDYOrKNTgEyZxFpcGUNTwMkwd3RINDwKjnvU+ZS+FCEnVpUSNOTLHJzC3A/72/W7PBgaYEAE98nIvRfZMR0cqY6fMMyAxKjS+CuLGvGPAs3XAEq7Ye99jiRG1yczi4dF19SkcGxHMoa3+hrLwzKSzgaX7B1JULtsSKq1Vbj2PW6F5YuuGwomsVF5KoT6viz1/sOel1NNUfqdXgcpVU1mHEc9l49npjTl8aM0wkRV8EKdkHitz2hluSfUjzYEzk7+LOPRC1MaxrAhJjImQ9VzyH3tyUj3kfel/FpAT3ODU+X6vQgqkrp2bOVmFFLZZuOOw1J8gX130xSR1aFH/+fNdJPBBAMHbXqG5IjrW5Pda+jQ1zFOYsl1bWG/YewxEyg1LjizB79S7UNujTU/R1cedWKdoQRxyVJsg+84W88hhyMaHamPyNSMupOdba1grDuia4PdbgEFB8Rlmyvj9vbT4q+7mzruyBUT3bMd1BA0eLq2Q9T24w/9wX+/HPb3zvfSqloroe3oqv9GrfGilxkYpHaI14j+EImUEF01sNtvZKjJ+6Qr641gySosboH7kLpL6TVsSLuNlrAjUnckakxd0/fB2ls7XnMPzZbOfoQmZuAS57YYPsmndyna72ve+hKCUuEnPG9sHIHm0NdWNtDjJzC/BS9iGfz5FzvRd9sacg4GAMAD7YccJjhufUmRo8sHKHsx6iXEa9x3CEzKD89VZ9Ja++9s2P6BrAZ0aEA49c1ff8ipcGxa+Xm8PBPRDVpbTUhdZeyj6Eqrp6j9W8zA/Uh5IR6bFpdsRHW33WfTpdVY97V+zA7y5PxWvf5Ot63jFfTBtyrykC5B2DBoeAJz/NVa19rp8PNNZD/Me0IXj8k1y/m5i7Mto9hiNkBiX2VgFlVdAbHALe2XIsoM+sawCe+/IgymX2TpvylsPhbZSEeyCqS82EajUIAP75TT7zAw1CyYj01vxS2Te01/+nbzA2J6M3g3uNyL2m3Di0I2rPOXyOgDc4BCzfnK9KrTFvxPM3IcaG7U+OxZyM3mhtkzfLY7R7DEfIDExqr0pfVdC35pfidE1gAVUwFkzshztHpboFiFI5K9wDUV3Z+wv1boIszA/Uh1Yj0nrOQNtjbZg1uqd+DWjm5J4LH+w4gQ92nADgfQQ8mFI6Sp06U4PwMAsezuiF+67ogRHPZaO00vu90Kj3GAZkBudaSK+wvBqllXVIbG1DXFSEs0fiLLIXY8O3PxaHtH3iie0tGJOqofbAyp245/x0h69NrXnD9i8ztwBvyEyAXjCxHxJjIrDjeBn+s+W4tg2TwK1tQq85jUiLV4SFk/rz+qChQM6FprUI5W7hppajxRe2C4xoFYZnrx+A+84XJDbLPYYBmQmEh1lQXl2HF9f94Hd/OQCQOVobNKkTW07OCvdADJ74d/ZHDJpT4qIUb0GjFaPlbjRnclZPxkdb4XAIuPj8c41wjnjD60NoyDlnmnIdAR/dNznkea1i/TrxXhTIDJPeGJCZgFRPQ0nyoha8ndhivoCcnJWEmAhsemw0K/UHSG6ehwBg0qAUPLAydL1Vf4rP1OLTXSd4zENAzEe9b8UOjxFp0emqetz6xndIiYtEesdYQwZkt43ogqFdEpyzAzxntCPnnPFGvLb/J+doyM+hwopaj5H3pls1Gf16w4DM4Iy2gu7GoZ3wq95JXk9spfkC4pw/p64CI3eU6c5Lu2LN7oKQnENyLt5hFriVSeDqS+1JjRY01bhZvPGCsTAL8J8tx51T7TxntCf3nPHmWKm8+mVqC1Xhc60wIDM4o62g+1XvJK8bSAeSL2CGnBUjk/v365wQHbJzyH5+A3tf5RCaJoNzH8zQEEcLvj1SjHtXbEdlnfLSNnrhOaMP8ZxZvjlfUa25ronRGrZKWulZ9wLFZtuejwGZwRWWV+vdBDdShWiVjOIZdYWLkXnbhF1urbrE1jYvP1XPrCt7oFdyG49R09f/ly9rJR5XX4ZO1v5CPP5xrqmCMW94zoROeJgFSW3kX0NS4iJx28hu+NemfEU5aGpw3TbO18IyowbzDMgMTqvaLUr5CqKUjOIZeYWLUfnq5UnleYh/2SkXd0HeqTOatm9Uz3Zu086ZucorcnP1pfZCvepNazxnQkfJbMa4/snYfqwMCyb2C2gD8WDY46IAmHd7PhaGNTg1RjfaRIbjxRsGyi6W15S/IErJijluAKyMvy1vAOCV6UNhj3O/YMbYwhEVEY4l2YewdGOepm0sc+k0NDgEzPtob8DvxdWX2jBaLqqaeM5ob3hqotvoky/Lvz2Gqa9vweK1B3DtQLvGLbvAdQsns27Px4DM4OyxwedZnalpwKMf7sHZ2sCmKfwFUXJ7Twsm9sOmx0YzGJPJXy8PuNDL2/TYaKyaOQJ3jeqG1rZWOFvbgKoQTUstXrvfWRNvy48lQa3+ZV6hNoyWiyrHjUM9c1W9kbsBNgUuPMyC6wZ3UPSagvIafLYnNEWrLXAfMDDr9nycsjS44SGuCyRW0k+IscleJjw8NdHv/ncJ0VaP4rHkm5Je3sgebVFeXYe3Nh8N+SiIaxty8koCfp/4KCvzCjWi940nIdqKMoWB+qieSdicV+I3D+ml7EPoY2/Njp6GGhwCOsZH6d0MtLaFo1V4GKprL4zKe0vST4qRN7NktA4gAzKDc60Ho9WNNjEmAgsm9oM9LkqzGi3NcapEa0p6eXpPSYltzfsl8Hy1GaO6MWDXiF43nusGd8BNwzoDFuA/OceQuU/+iIk9LgpPX5uGe89PzUsRYMx8oOYilNsf+dOzfWvcMbIbys5WA2X78eYdF2NEz/Ye5ZcWrvFdMNuoC8sYkJmAWA9m3kd7NSkGW1pZh7xfzjoTIpWSsyHx6ap6Jt8qpGTLG72npNq3iUSDQ8B3+WUBvT4h2opZo3up3CoSyam8nhgTAWsYUHRGnYVEYRZgdO/2+L8Pdis+N8V8oPAwC+Zk9MKS7MM+n8/kfm0YbSHIrp/Kseun3bCFC3hxOFBxft/mnLwSnDpTg6PFlX7PFSMvLGNAZhJiPZilGw7jrc1Hcbpa3cBs6cY8LN2YF1CNFrPO1xud3LIWw1MT8fmek6FunkcbtuaXBrwq+LnfDHBeHL2V+DDahdNsfFVeF/+yz16fDgB+R6TkcgjAQ+/tCui1Cyb2cx7zLm1jZL1m0+FfeK6oSO9Rdzlmr96FqE/2KxqoSI61YeGk/oac4mZSv4k07mTfG9sXjMWqmSMw68oeqn+GuHrviz0nkZNXgk93nUBOXokzadub5rR5sZGIN1Hgwk1T1LSXp8fftmkbAg2452T0cl4cM3MLcNkLGzD19S14+N1dmPr6Flz2wgZk5hao1OqWSxxpb7oi1x4XiWXThiIuKgK15xyyk+m1lOCSA9S02KeUZV/n8VxRkd6j7nIpnTX6y82DDRmMARwhMyVxuyEtRpzEsGvWqp1uRT19jZwpGckhZeRukBvIZsDBatqGQIPCbkmNIyBmLORoNt729iurrPXYdF7J/oVaWLu3ccRXSbkFgOeKmprrjEaxzABfDwzIDMzf1I2WoyJKtiqRMx1ixPl6s5CzQW6gmwEH4+aLOrmdC4EGhWL+mRkLOZqR6/6xmbkFeGDlTo+/u97TVCu2HMeKLceREheJKRd3lv06nivqaa4zGkb+vThlaVBypm7EchOh4Fr3ytv0pa/pEPZWgyfeRCcP7oiRPdp6vdFIHYP4aCtmj+kFe2ykx9RnMN7YlI+6cw63NkpNsXpjwYXkbbMWcjQzM+QIFZTXYEn2YUXXOZ4r6hA7WFLfZfH7+49pQ5ASZ9wgR+R6vTEqjpAZkNypm6z9hZqsupTib6sSOSM5pC1fx6BvShtndX9fYmzhqJRRRPhsbQNGPJeNZ68f4Ay4paZYmwo0/yx7fyFX0qnELDlCANwCf7ma65RbqMid+RifnoJx6SnYml+KzUeKsXTjER1a65tZZmoYkBmM3Kmb0X2Tsegz37VWrGEWBFic3ydfFzrX6RDSh9Qx8BcsiXmCDocgew+60sp6j6nspkHh0eJKrNp6HIUVF3I3As0/e2PzUVycmsgRVxXIDVj0zicD4Nx1IszimU4hJSnG5iyHwM5hYOTmsGqZ16yGpu01KgZkBiN36uY/OUf99m7rHWIIpy4jz8GTb67BUmFFDUrP1iIxJsKjKPA1uYX4fI/81WpNc3aaBoWzRvfyOXKqJP+M+UHqkPs9Fo/HjEu7oVNCFH4qq8Ka3QVuJU4iW4WhJoBRLKUEGcGYBUBctBWPvL8bhRUXrpGBlPQhZTMfemxjJTV6NzujN7olRZsqGGdAZjByexjHSvXZv83oc/Dkn5xRzJenDMGmw7/gdPU5v+/nbypbzmeK0yNyamCxCKg6lATBFgCZ+wqx6bHRCA+zYME1/V1GQKuwJPtQKJosa6ROgFgKwT2dgyswAyfnmpGZW4CXQnAe3HlpV4zt2w7FB7bgpVsG4w9rf/A5eifFiPUOGZAZjNxea1Wt/xulFoZ2idf9pCXthYdZ8PwNAxUVCQ02v2t8egruGtUNb24+6ve5Rp0aMRPXHCF/mgbd4g26wSHgshc2aN9YmcTRMW+5tVyBqZ1QLhAZ1z8FF3WJxRcHgIx+ybgqvaPiwMrbdlBGGEHlKkuDkbOyJSHaig92nAhls5zW7i3E3cu3+i0WS8bX4BB8Fv8dn56CV6cPRUxEuKz3e2Pz0aCLco5Ns8t6HqfNgyMe+9pzDszO6I3YSHl986aBsNEWBlwYHZP+OVdgqk/ueTCwYyyiWgUXdjQ9B+WsQHclLppr2l5xBFXPwsIcITMYOStb9A6D1h/8BesP/mKIHgUFRm4P0eEAquvlrwwJdvSBRYa15+3YW2QerqaBsFlHKs3abqOS+/e8vHd77DlREdRnBdMZM3q9Q46QGZCvml6zM3qHtNSFL0boUZByUj3EgvIa3Ht+2yzxefev3CF7VZv4HsGMPijZLoqUkzr2/pLlpWo4mXWk0qztNhLXEfbiM/Kq3/9cFnjusxp1xIxe75AjZAYltbJFr02kvTFCj4KUkZPr8cDKnXiw8Aze+/7ngD4j2NEHuUvtSZlg83y8BcLDuiYoKkWhJQsaN44GLCiq4AirlryNsvo7DywAPtkV2P2raWfMEWA5J7nXJr1GUBmQGZi3lS1KenahCI/krLAj45CT6yEA+NuGwIs7qjH6wCLD6gs03ysxxupW/NfV9mNlIQ3GEqKtKKuql0znWDipPwBwGzcNSRUu93ceBHOaWCzAzF+lBt0Zk3tt0msElVOWJiMn6d8e23gyJce6n1QpcZGabbXEnAx9+EvMb0rr4xQfZVVt9EFpsi75lrW/MKDXLbimv+SNMFTf+/goK9757SX4/smxeNXPFm3cxk07ckZZtfiWOgTgtW/yg06PkbsdlF4jqBwhMxk5Sf/zru6LuvztWDf7cuz8+YzbCEPW/kJFpQzkYk5G6AWydFvr4zRjVDcGTgaUmVsgq5yIN/ZY6XNG7fNJ6pr2/A0DMKpnEgB5o6ccYdWG3BF2rYjpMYGSux2UXueJ4hGy7t27o6SkxOPx06dPo3v37qo0inzz1wPM6JcMwPsIw/j0FFwzUL0eot49ipYq0KXbYg9RCwnRVswa3UuT96bAiaMaSsn5bvsbcVBiTkYv2aNackZPOcKqPj1nQtRKuDfyCKriEbKjR4+iocEzo662thYnTuhTG6sl8tUDrK+XXoWZmVuAtQq2xPHFCD2KliiYpdtKKuIrYQHw3G8G8DwwoEByx+R+t32NOIhmj+mJd7f9hKKKWp+J9rNG9/K7xRbpywgzIY1BYWxQ72HUEVTZAdmaNWuc/71u3TrExcU5/93Q0ID169ejW7duqjaOfFO6kbfSVVYpcZFYMLEfEmJsyNpfiE92nXTbv46r3vShZOm21Cbj/5g2BLNW7QwoIbvpairWozO2QEY1lHy3pVbFup4XfVNiZU8TcXGQcSnZbksragWFSu+foSA7ILvuuuuc/33HHXe4/cxqtaJbt274y1/+olrDSH1ye8pXpyfj9pGpbj2GkT3a4omJaYbrUbREaizdnjCwA5bCgvtXyh8pi4+yYsaobrjvip7YfqyM54FJyL2BLZjYD0ltbAEdU38jDmLQtnDNfrcNv9mpMxd/OVgCgPhoK8qr6mXtjwoA91yeitXf/+y3vqZryRJHgz5bB2pNdkDmcDgAAKmpqfj+++/Rtq2xIkvyT+6NfHx6iteegxF7FC2RWku3JwxMwathQzHvo72yig2XV9fjpezD6GNvwxuoicjd/eDOUalBBdbyrg/uLRD8VaQlw/FXJxDwXnakKdfn//ObfJ+fqVYdMqNTlENWX1+P7t27o7S0lAGZCRm9BgvJo+b2QuLIxtINh/HW5qM4Xe17H0AWAjYfI6wsk6pdVVRRi/tW7NA9mZqU8TciKjWFPeXiLuiWFO18PgBZm9O3lJFURQGZ1WrFnj17tGoLaYz7BDYPat9gw8MseDijN2aN7oXlm/OxeO0ByeeyELA56bn7Qaj2D2xwCEypCCFfI6Jyk+Zz8kpkpdH8+cZBGNUrSZV2G5niVZbTp0/HG2+8geeff16L9pCGjNBTJnVocYMND7MgqY1N1nNZCNh89FpZFuwiFDkCqclH2pIzhS33OlJcKW+vTLNTHJCdO3cOb775JrKzszFs2DDExMS4/fyvf/2rao0j+Vx7h0nR0oeV+wQ2H1rcYDmt3bzpkQeq9f6BUtOhYk0+TocaF6837hQHZLm5uRg6dCgA4NChQ24/s1g4sqKHpr1DW7iAF4cD2QeKcPXATh7PN2oNFlJO7Rssp7VJbVredEM1HUra4PXGneKAbOPGjVq0gwIk1TsEgDmrd8ESFu61d8gVk+QNp7VJbVredEMxHUra4fXGHTcXNzE5hV4Xfbbf74bTRK6MvLUImY940wU8N54O9qar9XQoaY/XmwsC2lz8+++/x3vvvYfjx4+jrq7O7WcfffSRKg0j/9g7JK1wWpvUpFXuKnOQmgdebxopDsjeffdd3H777Rg3bhy++uorXHXVVTh06BCKiopw/fXXa9FGksDeIWmJ09qkJi1uusxBaj54vQlgyvLZZ5/FkiVL8NlnnyEiIgIvv/wyDh48iJtvvhldunTRoo0kgb1DIjIT8aY7eXBHjOzRNugREC2nQ8m/BoeAnLwSfLrrBHLySpgeEyTFI2R5eXmYOHEiACAiIgKVlZWwWCyYM2cORo8ejUWLFqneSPJOTu8whb1DImrGWMpHH6z9pj7FAVlCQgLOnDkDAOjYsSNyc3MxYMAAnD59GlVVVao3kKT5WqEiYu+QiJo75iCFFmu/aUPxlOXll1+OrKwsAMBNN92Ehx9+GDNnzsTUqVMxZswY1RtIvkmtUAGAJbcM5peCiFoEtadDyTt/td8Aru4PlOIRsqVLl6KmpnGI8oknnoDVasW3336LG264AU8++aTqDST/mvYOk6JbofjAFmT0S9a7aURE1Ixwdb92FAVkR48eRVZWFurq6vDrX/8a6enpmDdvnlZtIwVcV6jU19fjC+n9oYmIiALC1f3akR2Qbdy4Eddccw2qq6sbX9iqFd58801Mnz5ds8YRERGRcXB1v3Zk55AtWLAAY8eOxYkTJ1BSUoKZM2fi0Ucf1bJtREREZCDi6n6pDD2u7g+c7IAsNzcXzz77LFJSUpCQkIA//elPOHXqFEpKSrRsHxERERkEa79pR3ZAVlFRgaSkJOe/o6OjERUVhfLyck0aRkRERMbD/Se1oSipf926dYiLi3P+2+FwYP369cjNzXU+NmnSJPVaR0RERIbD2m/qUxSQ3XHHHR6P/e53v3P+t8ViQUNDQ/CtIiIiIkPj/pPqkh2QORwOLdtBRERE1GIprtRPREREROpiQEZERESkMwZkRERERDpjQEZERESkMwZkRERERDpTHJDdcccd+Oabb7RoCxEREVGLpDggKy8vR0ZGBnr16oVnn30WJ06c0KJdRERERC2G4oDsk08+wYkTJ3Dfffdh9erV6NatG66++mp88MEHqK+v16KNRERERM1aQDlk7dq1w9y5c7F7925899136NmzJ2677TZ06NABc+bMweHDh9VuJxEREVGzFVRSf0FBAbKyspCVlYXw8HBMmDABe/fuRVpaGpYsWaJWG4mIiIiaNcUBWX19PT788ENcc8016Nq1K95//33Mnj0bJ0+exNtvv43s7Gy89957+MMf/qBFe4mIiIiaHUWbiwNASkoKHA4Hpk6diq1bt2Lw4MEez7nyyisRHx+vQvOIiIiImj/FAdmSJUtw0003ITIyUvI58fHxyM/PD6phRERERC2FoinL+vp6zJgxA0eOHNGqPUREREQtjqKAzGq1okuXLmhoaNCqPUREREQtjuKk/ieeeAKPP/44SktLtWgPERERUYujOIds6dKlOHLkCDp06ICuXbsiJibG7ec7duxQrXFERERELYHigOy6667ToBnyLVu2DH/6059QWFiIQYMG4e9//zuGDx8u+fz3338fCxYswNGjR9GrVy+88MILmDBhQghbTEREROSb4oDs6aef1qIdsqxevRpz587Fq6++iksuuQQvvfQSxo0bhx9++AHt27f3eP63336LqVOn4rnnnsM111yDlStX4rrrrsOOHTuQnp6uw29ARERE5ElxQKanv/71r5g5cyZmzJgBAHj11Vexdu1avPnmm5g3b57H819++WWMHz8ev//97wEAixcvRlZWFpYuXYpXX33V62fU1taitrbW+e+KigoAjStMzbJXp9hOs7SXGvG4mROPm3nx2JmT2Y6b3HYqDsgaGhqwZMkSvPfeezh+/Djq6urcfq5Vsn9dXR22b9+O+fPnOx8LCwtDRkYGcnJyvL4mJycHc+fOdXts3Lhx+OSTTyQ/57nnnsOiRYs8Hv/qq68QHR0dWON1kpWVpXcTKAA8bubE42ZePHbmZJbjVlVVJet5igOyRYsW4V//+hceeeQRPPnkk3jiiSdw9OhRfPLJJ3jqqacUN1Su4uJiNDQ0IDk52e3x5ORkHDx40OtrCgsLvT6/sLBQ8nPmz5/vFsRVVFSgc+fOuOqqqxAbGxvEbxA69fX1yMrKwtixY2G1WvVuDsnE42ZOPG7mxWNnTmY7buJMmz+KA7J33nkHr7/+OiZOnIiFCxdi6tSp6NGjBwYOHIgtW7bgoYceUtxYI7HZbLDZbB6PW61WUxx4V2ZsM/G4mRWPm3nx2JmTWY6b3DYqrkNWWFiIAQMGAABat26N8vJyAMA111yDtWvXKn072ZKSkhAeHo6ioiK3x4uKimC3272+xm63K3o+ERERkR4UB2SdOnVCQUEBAKBHjx746quvAADbtm3zOrKkloiICAwbNgzr1693PuZwOLB+/XqMHDnS62tGjhzp9nygcc5Z6vlEREREelAckF1//fXOIOfBBx/EggUL0KtXL9x+++246667VG+gq7lz5+L111/H22+/jQMHDuC+++5DZWWlc9Xl7bff7pb0//DDDyMzMxN/+ctfcPDgQSxcuBDff/89Zs2apWk7iYiIiJRQnEP2/PPPO//7lltuQZcuXZCTk4NevXrh2muvVbVxTd1yyy345Zdf8NRTT6GwsBCDBw9GZmamM3H/+PHjCAu7EGNeeumlWLlyJZ588kk8/vjj6NWrFz755BPWICMiIiJDCboO2ciRI0M6BThr1izJEa6vv/7a47GbbroJN910k8atIiIiIgpcQAHZ4cOHsXHjRpw6dQoOh8PtZ1qWviAiIiJqjhQHZK+//jruu+8+JCUlwW63w2KxOH9msVgYkBEREREppDgg++Mf/4hnnnkGjz32mBbtISIiImpxFK+yLCsrY04WERERkYoUB2Q33XSTs/YYEREREQVP8ZRlz549sWDBAmzZsgUDBgzw2BLA7FsnEREREYWa4oDstddeQ+vWrfHf//4X//3vf91+ZrFYGJARERERKaQ4IMvPz9eiHUREREQtluIcMiIiIiJSl6wRsrlz52Lx4sWIiYnB3LlzfT73r3/9qyoNIyIiImopZAVkO3fuRH19vfO/pbgWiSUiIiIieWQFZBs3bvT630REREQUPOaQEREREelM8SrL66+/3uvUpMViQWRkJHr27Ilp06ahT58+qjSQiIiIqLlTPEIWFxeHDRs2YMeOHbBYLLBYLNi5cyc2bNiAc+fOYfXq1Rg0aBA2b96sRXuJiIiImh3FI2R2ux3Tpk3D0qVLERbWGM85HA48/PDDaNOmDd59913ce++9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",
      "text/plain": [
       "<Figure size 700x700 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "awgn = sionna.phy.channel.AWGN()\n",
    "ebno_db = 15 # Desired Eb/No in dB\n",
    "no = sionna.phy.utils.ebnodb2no(ebno_db, num_bits_per_symbol, coderate=1)\n",
    "y = awgn(x, no)\n",
    "\n",
    "# Visualize the received signal\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "fig = plt.figure(figsize=(7,7))\n",
    "ax = fig.add_subplot(111)\n",
    "plt.scatter(np.real(y), np.imag(y));\n",
    "ax.set_aspect(\"equal\", adjustable=\"box\")\n",
    "plt.xlabel(\"Real Part\")\n",
    "plt.ylabel(\"Imaginary Part\")\n",
    "plt.grid(True, which=\"both\", axis=\"both\")\n",
    "plt.title(\"Received Symbols\");"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.16"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {},
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
